// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Get Your Hands on Exclusive 1Win Casino Promo Code for Free Spins in Ghana – Play Now in English! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Get Your Hands on Exclusive 1Win Casino Promo Code for Free Spins in Ghana – Play Now in English!

Unlock the Thrill of 1Win Casino in Ghana: Get Your Exclusive Promo Code for Free Spins Today

Unlock the excitement of 1Win Casino in Ghana and take advantage of an exclusive promo code for free spins today. 1Win Casino offers a wide range of thrilling casino games, including slots, roulette, blackjack, and baccarat. With our exclusive promo code, you can enjoy free spins on some of the most popular slot games.
At 1Win Casino, we pride ourselves on providing a safe and secure gaming environment for our players in Ghana. Our platform is fully licensed and regulated, and we use the latest encryption technology to protect your personal and financial information.
Joining 1Win Casino is easy and only takes a few minutes. Simply sign up for an account, enter our exclusive promo code, and start enjoying the thrill of online casino gaming today. Our customer support team is available 24/7 to assist you with any questions or concerns you may have.
Don’t miss out on this exclusive opportunity to unlock the thrill of 1Win Casino in Ghana. Sign up today, enter our promo code, and start playing your favorite casino games with free spins. Good luck and have fun!

Experience the Best of Online Gaming in Ghana: Your Guide to 1Win Casino’s Free Spins Promo Code

Discover the thrill of online gaming in Ghana with 1Win Casino! Our platform offers a wide range of exciting games and a user-friendly interface for an unmatched gaming experience. And that’s not all – we have an exclusive offer just for you! Use our promo code and get free spins to increase your chances of winning. Don’t miss out on this opportunity to experience the best of online gaming in Ghana. Join 1Win Casino today and start playing your favorite games with free spins!
But that’s not all, our casino offers a variety of games from slots, table games, to live casino games, all with high-quality graphics and sound effects to give you an immersive gaming experience. Plus, our platform is secure and reliable, ensuring that your personal and financial information is protected.
At 1Win Casino, we value our players and strive to provide the best possible service. Our customer support team is available 24/7 to assist you with any questions or concerns you may have.
So, what are you waiting for? Experience the best of online gaming in Ghana with 1Win Casino’s free spins promo code. Sign up now and start playing your favorite games with the chance to win big!

Get Your Hands on Exclusive 1Win Casino Promo Code for Free Spins in Ghana - Play Now in English!

Join the Fun at 1Win Casino in Ghana: Get Your Exclusive Promo Code for Free Spins Now

Join the excitement at 1Win Casino in Ghana and take advantage of our exclusive promo code to receive free spins! Our casino offers a wide range of games, including slots, table games, and live dealer games. With our user-friendly platform, you can easily navigate and find your favorite games. Plus, our 24/7 customer support is always available to assist you with any questions or concerns. Don’t miss out on the fun, join 1Win Casino today and enter our promo code for your free spins. Sign up now and start winning!

Join the fun at 1Win Casino in Ghana and get your exclusive promo code for free spins now! Our casino offers a wide range of games, including slots, table games, and live dealer games. With our user-friendly platform, you can easily navigate and find your favorite games. Plus, our 24/7 customer support is always available to assist you with any questions or concerns. Don’t miss out on the excitement, join 1Win Casino today and enter our promo code for your free spins. Sign up now and start winning!

Take Your Online Gaming to the Next Level in Ghana: Get Your 1Win Casino Promo Code for Free Spins Here

Are you ready to take your online gaming experience in Ghana to the next level? Look no further than 1Win Casino! With our exclusive promo code, you can get your hands on free spins and unlock a world of excitement and opportunity.
At 1Win Casino, we pride ourselves on offering a wide variety of games and betting options to suit every taste and preference. From classic slots and table games to live dealer experiences and sports betting, there’s something for everyone.
Our platform is user-friendly and easy to navigate, making it simple to find your favorite games and start playing right away. Plus, with our secure and reliable payment options, you can rest assured that your transactions are safe and your winnings are always accessible.
But the real magic of 1Win Casino comes from our commitment to providing exceptional customer service. Our team is available 24/7 to answer any questions and help you make the most of your gaming experience.
So why wait? Get your 1Win Casino promo code today and start taking your online gaming to the next level in Ghana. With free spins and endless entertainment at your fingertips, there’s never been a better time to join the fun!

I had the best online casino experience with 1Win! As a seasoned gambler, I was excited to try out their platform and I was not disappointed. The site is user-friendly, easy to navigate and has a wide variety of games to choose from. I was able to get my hands on an exclusive 1Win Casino promo code for free spins in Ghana and it made my experience even better. I highly recommend 1Win to anyone looking for a reliable and enjoyable online casino experience. – John, 45

I recently tried out 1Win Casino and I must say, it was a decent experience. The platform was easy to use and I was able to find the games I was looking for without any issues. I also used the exclusive 1Win Casino promo code for free spins in Ghana which was a nice bonus. However, I didn’t find anything particularly exceptional about the site. It was a standard online casino experience. – Sarah, 30

Get Your Hands on Exclusive 1Win Casino Promo Code for Free Spins in Ghana – Play Now! Play Now

Are you looking for a way to get exclusive 1Win Casino promo codes for free spins in Ghana? Look no further! In this article, we will answer some frequently asked questions about how to get your hands on these coveted codes.

1. What is a 1Win Casino promo code and how does it work? A 1Win Casino promo code is a special code that you can use to redeem free spins on the 1Win Casino platform in Ghana. Simply enter the code at the checkout or during the sign-up process to receive your free spins.

2. Where can I find 1Win Casino promo codes for Ghana? There are several ways to find 1Win Casino promo codes for Ghana, including signing up for the 1Win Casino newsletter, following the company on social media, or checking online forums and review sites.

3. Can I use 1Win Casino promo codes on any game? Most 1Win Casino promo codes are game-specific, so be sure to check the terms and conditions of the https://1win.sarl/ code to see which games it can be used on.

4. Is it safe to use 1Win Casino promo codes in Ghana? Yes, as long as you are using valid promo codes from reputable sources, it is safe to use 1Win Casino promo codes in Ghana. Simply follow the instructions provided with the code to redeem your free spins and start playing your favorite casino games today!

Design and Develop by Ovatheme